function minmaxcheck(_val, _min, _max, _name) {
    var val = parseInt(_val);

    if (isNaN(val) || val < _min || val > _max) {
        alert("Ошибка! " + _name + ':Должно быть числом от ' + _min + ' до '
                + _max + '.');
        return false;
    } else {
        return true;
    }
}

$(function() {
    
    var templateLastSel = -1;
    
     $("#msg-template-edit").jqGrid({
            url:"req/tmpl_list.php",
            datatype: 'json',
            mtype: 'get',
            width: 600,
            editurl:'clientArray',
            colNames:['id', 'Неисправность','Сообщение'],
            colModel :[ 
              {name:'id',sortable: false, editable: false, hidden:true }, 
              {name:'text',sortable: false, width: 200, fixed: true, editable: false}, 
              {name:'template',sortable: false, editable: true, editoptions:{size:"400",maxlength:"200"} } 
            ],
            onSelectRow: function(id){
                 if(id && id !== templateLastSel){ 
                    $('#msg-template-edit').restoreRow(templateLastSel); 
                    templateLastSel = id; 
                 }
                $('#msg-template-edit').editRow(id, true);
               }
          });
     
     $("#cont-edit-grid").jqGrid({
            datatype: 'json',
            mtype: 'get',
            width: 600,
            colNames:['№ контр.', 'Название СО','Рассылать'],
            colModel :[ 
              {name:'c_id',sortable: false, editable: false, width: 50, fixed: true, align:'center'}, 
              {name:'c_location',sortable: false, editable: false}, 
              {name:'select',sortable: false, editable: true, fixed:true, width: 150,  align:'center', formatter:'checkbox',formatoptions: {disabled : false}, edittype: 'checkbox', editoptions: {value:'1:0'} } 
            ],
            sortname:'c_id'
          });
     
     $("#address-edit-grid").jqGrid({
            datatype: 'json',
            mtype: 'get',
            width: 300,
            editurl:'clientArray',
            colNames:['', 'Адрес'],
            colModel :[
              { name: 'myac', width:55, fixed:true, sortable:false, resize:false, formatter:'actions', formatoptions:{
                 keys:true,
                 delOptions: 
                 {
                    onclickSubmit: function (rp_ge, rowid)
                        {
                            rp_ge.processing = true;
                            $("#address-edit-grid").jqGrid().delRowData(rowid);   
                            $("#delmodaddress-edit-grid").hide(); //close extra dialog form
                            return false;
                        },

                    onClose: function()
                    {
                        return true;
                    },


                    processing:true

                }

                }
              },
              {name:'address',sortable: false, editable: true}, 
            ]          
      });




    $("#addr-edit-add").button().click(function() {
            var grid = $("#address-edit-grid");
            var ids = grid.getDataIDs();
            var next = 0;
    
            if (ids.length > 0) {
                next = parseInt(ids[ids.length - 1]) + 1;
            }
            
            grid.addRowData(next, {}, 'last');
            jQuery.fn.fmatter.rowactions(next, 'address-edit-grid', 'edit', 0);
        });
     
    $("#msg-template-form").dialog(
            {
                autoOpen : false,
                height : 'auto',
                width : 'auto',
                modal : true,
                resizable : false,
                dialogClass: "msg-template-dlg",
                buttons : {

                    "Отменить" : function() {
                        $(this).dialog("close");
                    },
                    "Записать" : function() {

                        var grid = $('#msg-template-edit');
                        var rows = grid.getDataIDs();

                        for (var id in rows) {
                            grid.saveRow(id);
                        }

                        $.ajax( {
                            type : "post",
                            url : "req/tmpl_edit.php?action=templ",
                            dataType : "json",
                            contentType : "application/json; charset=utf-8",
                            data : JSON.stringify($("#msg-template-edit")
                                    .getRowData()),
                            success : function(response, textStatus, xhr) {
                                alert("Данные сохранены");
                                $("#msg-template-form").dialog("close");
                            }
                        });
                    }
                }
            });
    
    $("#cont-edit-selall").button().click(function (){ 
        var grid = $('#cont-edit-grid');
        $.each(grid.getDataIDs(), function (idx, val){
            grid.setCell(val,'select',1);
        });
    });
    
    $("#cont-edit-unselall").button().click(function (){
        var grid = $('#cont-edit-grid');
        $.each(grid.getDataIDs(), function (idx, val){
            grid.setCell(val,'select',0);
        });
    });
    
    var dialog_action = 0;
                
    $("#setup-addr-form").dialog(
            {
                autoOpen : false,
                height : 'auto',
                width : 'auto',
                modal : true,
                resizable : false,
                buttons : {

                    "Отменить" : function() {
                        $(this).dialog("close");
                    },
                    "Записать" : function() {
                        
                        if ($("#address-edit-grid tr[editable=1]").size() > 0) {
                            alert("Перед сохранением закончите редактирование адресов уведомления.");
                            return;
                        }
                        
                        $.ajax( {
                            type : "post",
                            url : "req/tmpl_edit.php?action=setup",
                            dataType : "json",
                            contentType : "application/json; charset=utf-8",
                            data : JSON.stringify({
                                        cont: $("#cont-edit-grid").getRowData(), 
                                        addr: $("#address-edit-grid").getRowData(),
                                        action: dialog_action
                                    }),
                            success : function(response, textStatus, xhr) {
                                alert("Данные сохранены");
                                $("#setup-addr-form").dialog("close");
                            }
                        });
                    }
                }
            });
    
    $("#save-button").button().click(
            function() {

                var movresc = $('input[name=mon-rescan]').val();

                if (!minmaxcheck(movresc, 5, 30,
                        'Значение периода обновления экрана монитора'))
                    return;

                var contresc = $('input[name=cont-rescan]').val();

                if (!minmaxcheck(contresc, 5, 30,
                        'Значение периода обновления состояния контроллера'))
                    return;
                    
                var logrotate = $('input[name=log-rotate]').val();

                if (!minmaxcheck(logrotate, 1, 5,
                        'Значение периода хранения журнала'))
                    return;
                
                var smsmax = $('input[name=sms-max]').val();

                if (!minmaxcheck(smsmax, 5, 30,
                        'Число SMS в минуту'))
                    return;
                
                var emailmax = $('input[name=email-max]').val();

                if (!minmaxcheck(emailmax, 5, 30,
                        'Число e-mail в минуту'))
                    return;
                
                var data = $('#param-form').serialize();

                $.post('req/dat_edit.php', data, function(data) {
                    alert('Параметры сохранены !');
                });

            });

    $("#sms-alarm-button").button().click(function() {
        $("#cont-edit-grid").jqGrid().setGridParam({url:'req/con_clist.php?action=sms', page:1}).trigger("reloadGrid");
        $("#address-edit-grid").jqGrid().setGridParam({url:'req/templ_caddr.php?action=sms', page:1}).trigger("reloadGrid");
        $('.adr-lbl').text('Телефоны для уведомления');
        $('#jqgh_address-edit-grid_address').text('Телефон');
        $("#addr-edit-add").button({label:'Добавить телефон'});
        dialog_action = 0;
        $("#setup-addr-form").dialog("open");
    });

    $("#email-alarm-button").button().click(function() {
        $("#cont-edit-grid").jqGrid().setGridParam({url:'req/con_clist.php?action=email', page:1}).trigger("reloadGrid");
        $("#address-edit-grid").jqGrid().setGridParam({url:'req/templ_caddr.php?action=email', page:1}).trigger("reloadGrid");
        $('.adr-lbl').text('Адреса для уведомления');
        $('#jqgh_address-edit-grid_address').text('E-mail');
        $("#addr-edit-add").button({label:'Добавить E-mail'});
        dialog_action = 1;
        $("#setup-addr-form").dialog("open");

    });
    
    $("#msg-template-button").button().click(function() {
        $("#msg-template-form").dialog("open");
    });

    //
    // startup form loading
    //
    
    $.post('req/dat_edit.php', {
        oper : 'load'
    }, function(data) {
        var dat = $.parseJSON(data);

        $('input[name=title]').val(
                (typeof (dat.title) == 'undefined') ? '' : dat['title']);

        if (('vis-plan' in dat) && (dat['vis-plan'] == 1)) {
            $('input[name=vis-plan]').attr("checked", true);
        } else {
            $('input[name=vis-plan]').removeAttr("checked");
        }

        if (('vis-proto' in dat) && (dat['vis-proto'] == 1)) {
            $('input[name=vis-proto]').attr("checked", true);
        } else {
            $('input[name=vis-proto]').removeAttr("checked");
        }

        if (('vis-disp' in dat) && (dat['vis-disp'] == 1)) {
            $('input[name=vis-disp]').attr("checked", true);
        } else {
            $('input[name=vis-disp]').removeAttr("checked");
        }

        $('input[name=mon-rescan]').val(
                (typeof (dat['mon-rescan']) == 'undefined') ? '5'
                        : dat['mon-rescan']);
        $('input[name=cont-rescan]').val(
                (typeof (dat['cont-rescan']) == 'undefined') ? '5'
                        : dat['cont-rescan']);
        
        $('input[name=log-rotate]').val(
                (typeof (dat['log-rotate']) == 'undefined') ? '1'
                        : dat['log-rotate']);
        
        $('input[name=sms-max]').val(
                (typeof (dat['sms-max']) == 'undefined') ? '5'
                        : dat['sms-max']);
        
        $('input[name=email-max]').val(
                (typeof (dat['email-max']) == 'undefined') ? '5'
                        : dat['email-max']);
        
        if (('sound-alarm' in dat) && (dat['sound-alarm'] == 1)) {
            $('input[name=sound-alarm]').attr("checked", true);
        } else {
            $('input[name=sound-alarm]').removeAttr("checked");
        }

    });
    

});